The present invention generally relates to discrete wavelet transforms (DWT), and more particularly, to field programmable gate array (FPGA) implementations of DWTs.
An example programmable logic device (PLD) is the field programmable gate array (FPGA), first introduced by Xilinx, Inc. in 1985. PLDs such as FPGAs are becoming increasingly popular for use in electronics systems. For example, communications systems employ FPGAs in large measure for their re-programmability. In general, the use of FPGAs continues to grow at a rapid rate because they permit relatively short design cycles, reduce costs through logic consolidation, and offer flexibility in their re-programmability.
Advances in semiconductor process technology are delivering FPGAs having logic densities in the range of a million system gates and having operating speeds in excess of 100 MHz. These powerful devices are capable of and have been used to implement digital signal processing (DSP) algorithms that are inherently parallel and normally require multiple DSP microprocessors in order to meet the high data rates. It is feasible to implement such algorithms on a single FPGA because such devices offer a programmable architecture.
The discrete wavelet transform (DWT) is a useful and efficient signal and image decomposition method with many interesting properties. This transformation, which is similar to the Fourier transform, provides information about the frequency content of signals. However, unlike the Fourier transform, DWT is more natural and fruitful when applied to non-stationary signals, such as speech and images.
The flexibility offered by DWT allows researchers to develop suitable wavelet filters for particular applications. For example, in the compression of fingerprints a particular set of biorthogonal filters, Daubechies biorthogonal spline wavelet filters, has been found to be effective. This flexibility is nonexistent in the discrete-cosine transform for image compression.
The latest standards for image and video compression, JPEG and MPEG, include wavelet transforms as the means for image and video signal decomposition. In addition to efficient image decomposition for compression and coding, wavelet transform is applied to images for filtering and enhancement. The filtering algorithms, generally referred to as denoising, have shown robust and effective performance in the removal of noise from images with minimal side effects (blurring).
In many image processing applications, including compression, denoising, and enhancement, real-time processing of a two-dimensional wavelet transform is required. Flexibility in customizing the wavelet transform with regard to the filters and the structure of the wavelet decomposition tree are also desirable. Most ASIC implementations are developed for specific wavelet filters and/or wavelet decomposition trees, which renders ASIC solutions useless for applications that require different filters and/or different decomposition trees. An apparatus that addresses the aforementioned problems, as well as other related problems, is therefore desirable.
In various embodiments, analysis and synthesis banks of a two-dimensional discrete wavelet transform are implemented using a cascade combination of two one-dimensional wavelet transforms along with a set of memory buffers between the two stages. The memory buffers store intermediate results between the stages of the two-dimensional discrete wavelet transform, thereby eliminating off-chip memory references.
In one embodiment, a two-dimensional discrete wavelet forward transform analysis bank is provided. The analysis bank includes a circuit arranged to perform a first one-dimensional wavelet transform of rows of input data for a selected wavelet type. A plurality of buffers are arranged for storage of output data from the first one-dimensional wavelet transform. A second circuit is arranged to perform a one-dimensional wavelet transform of columns of input data for the selected wavelet type. In another embodiment, the first transform operates on the columns of data and the second transform operates on the rows of data.
In another embodiment, a two-dimensional discrete wavelet inverse transform synthesis bank is provided. The synthesis bank is constructed as the inverse of the analysis bank.